package pocisk;

import java.awt.geom.Point2D;

/**
 *
 * @author Maciej
 */
public class HitTargetFunction { // funkcja celu

    World swiat;

    HitTargetFunction(World s) {
        swiat = s;
    }

    public double function(double[] crit) {
        swiat.simulate(crit[0], crit[1]); //zasymulowanie lotu pocisku wprowadzając kąt wystrzelenia i masę
        Point2D.Double nearest = swiat.points.get(0);
        Point2D.Double celpoint = new Point2D.Double(swiat.cx, swiat.cy);
        for (Point2D.Double p : swiat.points) { //poszukiwanie w tablicy wyliczonych punktów lotu pocisku tego który istnieje najbliżej celu
            if (p.distance(celpoint) < nearest.distance(celpoint)) {
                nearest = p;
            }
        }
        return nearest.distance(celpoint); //zwracanie odległości najbliższego punktu lotu pocisku od celu
    }
}
